package com.voxel.sense.infomsg.module.task.manager;

import com.example.com.common.app.BaseContract;
import com.voxel.sense.infomsg.data.bean.ConditionBean;

import java.util.List;

/**
 * 任务管理契约类
 * Created by ChenYiYao on 2018/3/22.
 */

public interface TaskManagerContract {
    /**
     * 初始化
     * 加载筛选菜单
     * 1.区域 2.任务类型 3.智能筛选
     * 初始化任务列表
     * <p>
     * 行为：
     * 有筛选条件加载
     * 无筛选条件加载
     * <p>
     * 是否有更多数据
     * 是否异常没有数据
     */
    interface Presenter extends BaseContract.Presenter {

        /**
         * 加载区域列表信息数据
         */
        void doLoadRegionMenuData(String city);

        /**
         * 加载任务类型列表数据
         */
        void doLoadTaskTypeMenuData();

        /**
         * 加载智能筛选列表的数据
         */
        void doLoadOtherMenuData();

        /**
         * 请求数据
         */
        void doLoadData();

        /**
         * 再起请求数据
         */
        void doLoadMoreData();

        void changeSearchCondition(ConditionBean bean);

        void doSubmitSearchCondition();

    }

    interface View<P extends Presenter, DATAS> extends BaseContract.RecyclerView<P, DATAS> {

        /**
         * 刷新筛选列表数据
         *
         * @param datas
         */
        void onNotifyRegionData(List<ConditionBean> datas);


        /**
         * 刷新筛选列表数据
         *
         * @param datas
         */
        void onNotifyTaskTypeData(List<ConditionBean> datas);


        /**
         * 刷新筛选列表数据
         *
         * @param datas
         */
        void onNotifyOtherData(List<ConditionBean> datas);

    }

}
